Regiones y mamiferos de Costa Rica

Author

Wagner Antonio Chacón Ulate

Published

July 3, 2023

1. Introducción:

En Costa Rica, hay 6 regiones socioeconomicas, en este documento ~no usaremos ese sentido de las regiones~. la fuente de los datos son dos archivos:

2. Carga de datos y librerias:

Se muestra los comandos de codigo para cargar librerias y datos a usar en esta tarea.

Code
library(tidyverse)
library(DT)
library(sf)
library(rgdal)
library(raster)
library(terra)
library(leaflet)
library(leaflet.extras)
library(leafem)
library(readr)
library(dplyr)
library(ggplot2)
library(plotly)
library(viridis)
library(devtools)
Code
###Regiones

regiones <- 
  st_read("regiones.geojson", quiet = TRUE)

### 2.1. Mamiferos

mamiferos <-
  st_read(
    "mamiferos.csv.csv",
    options = c(
      "X_POSSIBLE_NAMES=decimalLongitude", # columna de longitud decimal
      "Y_POSSIBLE_NAMES=decimalLatitude"   # columna de latitud decimal
    ),
    quiet = TRUE
  )

# Cambio de sistema de coordenadas
regiones <-
  regiones |>
  st_transform(4326)

st_crs(mamiferos) <- 4326

Unión de los datos:

Se unen los datos de regiones y mamiferos para trabajar mejor en ellos y generar graficoss, tablas y mapas para su comprension.

Code
mamiferos_union_region <-
  st_join(
    x = mamiferos,
    y = dplyr::select(regiones, region),
    join = st_within
  )
Code
riqueza_especies_mamiferos <-
  mamiferos_union_region |>
  st_drop_geometry() |>
  group_by(region) |>
  summarise(riqueza_especies_mamiferos = n_distinct(species, na.rm = TRUE))
Code
region_union_riqueza <-
  left_join(
    x = regiones,
    y = riqueza_especies_mamiferos,
    by = "region"
  ) |>
  replace_na(list(riqueza_especies_mamiferos = 0))

3. Graficos:

Grafico de barras segun region y cantidad de mamiferos en cada una.

Se muestra un grafico que compara la cantidad de especies de mamiferos en cada una de las regiones de Costa Rica.

Code
grafico_mamiferos_region <-
riqueza_especies_mamiferos |>
  ggplot(aes(x = reorder(region,-riqueza_especies_mamiferos), y = riqueza_especies_mamiferos)) +
  geom_bar(stat = "identity", position = "dodge") +
  ggtitle("Riqueza de mamíferos en regiones socioeconómicas") +
  xlab("Regiones socioeconómicas") +
  ylab("Riqueza de mamíferos")+
  labs(caption = "Fuente: Ministerio de Planificación (MIDELAN)") +
  theme_gray() +
  theme(axis.text.x = element_text(angle = 90, hjust = 1))

ggplotly(grafico_mamiferos_region)

Grafico de registro de perezosos:

Se muestra un grafico de presencia de peresosos de la especie Bradypus variegatus (perezoso de tres dedos). Esta segun sus observaciones en las regiones de Costa Rica.

Code
perezosos_3dedos <-
mamiferos_union_region |>
  filter(year >= 2000) |>
  filter(species == "Bradypus variegatus") |>
  ggplot(aes(x = year)) +
  geom_bar() +
  ggtitle("Registro de presencia del Bradypus variegatus (perezoso de tres dedos) 
desde el año 2000 hasta el 2023.") +
  xlab("Año") +
  ylab("Cantidad de perezosos de tres dedos") +
  theme_gray()

ggplotly(perezosos_3dedos)

4. Tabla de contenidos:

Se muestra una tabla de contenidos, en la cual, se ve la cantidad de especies segun las regiones socioeconomicas.

Code
riqueza_especies_mamiferos |>
  dplyr::select(region, riqueza_especies_mamiferos) |>
  datatable(
    colnames = c("Nombre de la región socioeconómica", "Riqueza de especies de mamíferos"),
    options = list(
      pageLength = 7,
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    ))
  1. Mapa
Code
# Paleta de colores de riqueza de mamiferos
colores_riqueza_especies <-
  colorNumeric(
    palette = "blue",
    domain = region_union_riqueza$riqueza_especies_mamiferos,
    na.color = "transparent"
  )

# Paleta de colores de especies
colores_especies <- colorFactor(
  palette = viridis(length(unique(mamiferos$species))), 
  domain = mamiferos$species
)

# Mapa leaflet
leaflet() |>
  setView(
    lng = -84.19452,
    lat = 9.572735,
    zoom = 7) |>
  addTiles(group = "Mapa general (OpenStreetMap)") |>
  addProviderTiles(
    providers$Esri.WorldImagery, 
    group = "Imágenes satelitales (ESRI World Imagery)"
  ) |> 
  addPolygons(
    data = region_union_riqueza,
    fillColor = ~ colores_riqueza_especies(region_union_riqueza$riqueza_especies_mamiferos),
    fillOpacity = 0.8,
    color = "black",
    stroke = TRUE,
    weight = 1.0,
    popup = paste(
      paste("<strong>Riqueza de mamiferos:</strong>", region_union_riqueza$riqueza_especies_mamiferos),
      sep = '<br/>'
    ),
    group = "Riqueza de mamiferos"
  ) |>
  addScaleBar(
    position = "bottomleft", 
    options = scaleBarOptions(imperial = FALSE)
  ) |>    
  addLegend(
    position = "bottomleft",
    pal = colores_riqueza_especies,
    values = region_union_riqueza$riqueza_especies_mamiferos,
    group = "Riqueza de mamiferos",
    title = "Riqueza de mamiferos"
  ) |>
  addCircleMarkers(
    data = mamiferos,
    stroke = F,
    radius = 4,
    fillColor = ~colores_especies(mamiferos$species),
    fillOpacity = 1.0,
    popup = paste(
      paste0("<strong>Especie: </strong>", mamiferos$species),
      paste0("<strong>Localidad: </strong>", mamiferos$locality),
      paste0("<strong>Fecha: </strong>", mamiferos$eventDate),
      paste0("<strong>Fuente: </strong>", mamiferos$institutionCode),
      paste0("<a href='", mamiferos$occurrenceID, "'>Más información</a>"),
      sep = '<br/>'
    ),    
    group = "Registros de presencia"
  ) |>  
  addLayersControl(
    baseGroups = c(
      "Mapa general (OpenStreetMap)", 
      "Imágenes satelitales (ESRI World Imagery)"
    ),
    overlayGroups = c(
      "Riqueza de mamiferos",
      "Registros de presencia"
    )
  ) |>
  addResetMapButton() |>
  addSearchOSM() |>
  addMouseCoordinates() |>
  addFullscreenControl() |>
  hideGroup("Registros de presencia")